package com.itheima.UDPdemo;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class ReceiveMessageDemo {
    public static void main(String[] args) throws IOException {
        //接收数据

        //1.创建对象DatagramSocket(快递公司)
        //细节:接收时候一定要绑定端口，端口一定要和发送的端口一致

        DatagramSocket ds=new DatagramSocket(10086);

       //2.接收数据包
        byte[] bytes=new byte[1024];

        DatagramPacket dp=new DatagramPacket(bytes,bytes.length);
        //ds.receive方法是阻塞的，会一直等发送端数据，发过来才运行下面,可以实验
        System.out.println(111);
        ds.receive(dp);//结束数据也需要一个包
        System.out.println(222);


        //3.解析数据包
        byte[] bytes1=dp.getData();//获取数据
        System.out.println(new String(bytes1,0,dp.getLength()));
        System.out.println(dp.getLength());//获取数据长度
        System.out.println(dp.getAddress());//获取数据ip
        System.out.println(dp.getPort());//获取数据端口

        //4.释放资源
        ds.close();


        //运行先运行接收端，再运行发送端!!!
    }
}
